package com.jprocms.module.cms.dal.mysql.sitetpl;

import com.jpro.framework.common.pojo.PageResult;
import com.jpro.framework.mybatis.core.mapper.BaseMapperX;
import com.jpro.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.jprocms.module.cms.controller.admin.sitetpl.vo.SiteTplExportReqVO;
import com.jprocms.module.cms.controller.admin.sitetpl.vo.SiteTplPageReqVO;
import com.jprocms.module.cms.dal.dataobject.sitetpl.SiteTplDO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 站点各个发布平台的首页和列表默认模板 Mapper
 *
 * @author jprocms
 */
@Mapper
public interface SiteTplMapper extends BaseMapperX<SiteTplDO> {
    List<SiteTplDO> selectListBySiteId(@Param("siteId") Long siteId);

    default PageResult<SiteTplDO> selectPage(SiteTplPageReqVO reqVO) {
        return selectPage(reqVO, new LambdaQueryWrapperX<SiteTplDO>()
                .eqIfPresent(SiteTplDO::getSiteId, reqVO.getSiteId())
                .eqIfPresent(SiteTplDO::getPlatformId, reqVO.getPlatformId())
                .eqIfPresent(SiteTplDO::getDefListTpl, reqVO.getDefListTpl())
                .eqIfPresent(SiteTplDO::getIndexTpl, reqVO.getIndexTpl())
                .betweenIfPresent(SiteTplDO::getCreateTime, reqVO.getCreateTime())
                .orderByDesc(SiteTplDO::getId));
    }

    default List<SiteTplDO> selectList(SiteTplExportReqVO reqVO) {
        return selectList(new LambdaQueryWrapperX<SiteTplDO>()
                .eqIfPresent(SiteTplDO::getSiteId, reqVO.getSiteId())
                .eqIfPresent(SiteTplDO::getPlatformId, reqVO.getPlatformId())
                .eqIfPresent(SiteTplDO::getDefListTpl, reqVO.getDefListTpl())
                .eqIfPresent(SiteTplDO::getIndexTpl, reqVO.getIndexTpl())
                .betweenIfPresent(SiteTplDO::getCreateTime, reqVO.getCreateTime())
                .orderByDesc(SiteTplDO::getId));
    }

}
